In a client-server architecture, such as a miroservice architercure employing clients and servers, a client may send a request to a server to perform a certain service, such as a microservice, that is needed by the client. The request is sent to the server using a certain protocol, such as a remote-procedure-call (RPC) protocol, in which the requestor directs the request to a certain target device, which executes the service requested upon receiving the request. In such client-server architectures, the service requested is often associated with data components, such as code segments and data sets, which are needed for execution of the service requested. Various parameters, such as load conditions, latency performance, and communication bandwidth availability may greatly affect performance in such client-server architectures. When a client decides to send a request to a certain target server, the result may be sub-optimal in respect to the resulting need to transport data component across different locations, or it may be sub-optimal is respect to a latency in the response, or it may be otherwise sub-optimal at the system-level, in which many requests need to be answered simultaneously.